package com.taobao.auth.controller;


import com.taobao.auth.utils.WebChatUtils;
import com.taobao.ucenter.model.dto.WebChatRequestDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.security.NoSuchAlgorithmException;


@Slf4j
@RestController
public class WebChatController {


    /**
     * 开发者通过检验signature对请求进行校验（下面有校验方式）。若确认此次GET请求来自微信服务器，请原样返回echostr参数内容，
     * 则接入生效，成为开发者成功，否则接入失败。加密/校验流程如下：
     * 1）将token、timestamp、nonce三个参数进行字典序排序
     * 2）将三个参数字符串拼接成一个字符串进行sha1加密
     * 3）开发者获得加密后的字符串可与signature对比，标识该请求来源于微信
     */
    @GetMapping("/webchat")
    public String checkWebChat(WebChatRequestDto webChatRequestDto) throws NoSuchAlgorithmException {

        if (WebChatUtils.checkWebChat(webChatRequestDto)) {
            return webChatRequestDto.getEchostr();
        }

        return "error";
    }


}
